package com.joker.aigc.blog.domain.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.joker.aigc.domain.po.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 文章表
 *
 * @TableName article
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(name = "文章类")
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "article")
public class ArticlePO extends BaseEntity implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用于保存文章的唯一标识符。草稿保存
     */
    private String uuid;


    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /**
     * 天气
     */
    private String weather;


    /**
     * 标题
     */
    private String title;

    /**
     * 文章摘要
     */
    private String summary;

    /**
     * 文章内容
     */
    private String content;

    /**
     * 是否精华
     */
    private Integer prime;

    /**
     * 是否置顶（0否，1是）
     */
    private Integer isTop;

    /**
     * 是否全局置顶
     */
    private Integer isGlobalTop;

    /**
     * 状态（1已发布，0草稿）
     */
    private Integer status;

    /**
     * 是否允许评论 1是，0否
     */
    private Integer closeComment;

    /**
     * 访问量
     */
    private Long viewCount;

    /**
     *
     */
    private Long likeCount;

    /**
     *
     */
    private Long starCount;

    /**
     *
     */
    private Long commentCount;

    /**
     * 缩略图1
     */
    private String thumbnail1;

    /**
     * 缩略图2
     */
    private String thumbnail2;

    /**
     * 缩略图3
     */
    private String thumbnail3;

    /**
     * 用户id
     */
    private Long createdBy;

    /**
     * 文章的总分数，是根据浏览、点赞、收藏、评论数计算得来的
     */
    private Integer score;

    /**
     * 文章的热度，有一个定时任务，每小时计算增加的score
     */
    private Integer hot;


}